package cn.myallways.iglp.web.controller.mdm;


import com.allways.dubbo.mdm.beans.questionnaireTask.QuestionnaireTask;
import com.allways.dubbo.mdm.exception.MdmException;
import com.allways.dubbo.mdm.service.questionnaireTask.IQuestionnaireTaskService;
import cn.myallways.iglp.constants.BusiConstants;
import com.myallways.iglp.cc.web.entity.ReturnVO;
import com.myallways.iglp.framework.base.controller.BaseController;
import com.myallways.iglp.framework.base.pagination.DataTableRequest;
import com.myallways.iglp.framework.base.pagination.DataTableResponse;
import com.myallways.iglp.framework.base.pagination.PageInfo;
import com.myallways.iglp.framework.base.pagination.PaginationResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 调查问卷任务信息Controller
 * Created by weih on 2017-05-23.
 */
@Controller
@RequestMapping("/mdm/questionnaireTask")
public class QuestionnaireTaskController extends BaseController {

    @Autowired
    IQuestionnaireTaskService questionnaireTaskService;
    /**
     * 跳转新增调查问卷任务页面
     * @return
     */
    @RequestMapping("/toAdd")
    public String toAddPage(){
        return "mdm/questionnaireTask/add";
    }
    /**
     * 新增调查问卷任务信息
     * @param questionnaireTask 调查问卷任务对象
     * @return
     */
    @RequestMapping(value = "/add",method = RequestMethod.POST)
    public void addQuestionnaireTask(@RequestBody QuestionnaireTask questionnaireTask,HttpServletResponse response){
        ReturnVO vo = new ReturnVO();
        vo.setStatus(HttpServletResponse.SC_OK);
        questionnaireTask.setCreateUser(getSessionUser().getUserId());
        questionnaireTask.setDataSource(BusiConstants.DATASOUCE_CODE_FOR_MDM);
        try {
            questionnaireTaskService.addQuestionnaireTask(questionnaireTask);
        }catch (MdmException e){
            vo.setStatus(e.getCode());
            vo.setMessage(e.getMessage());
        }
        super.ajaxJson(response, vo);
    }

    /**
     * 跳转编辑调查问卷任务页面
     * @param questionnaireTaskCode  调查问卷任务代码
     * @return
     */
    @RequestMapping("/toEdit")
    public String toEditPage(String questionnaireTaskCode,Model model){
        model.addAttribute("questionnaireTask", questionnaireTaskService.getQuestionnaireTaskByCode(questionnaireTaskCode));
        return "mdm/questionnaireTask/edit";
    }

    /**
     * 编辑调查问卷任务信息
     * @param questionnaireTask
     * @return
     */
    @RequestMapping(value = "/edit",method = RequestMethod.POST)
    public void editQuestionnaireTask(@RequestBody QuestionnaireTask questionnaireTask,HttpServletResponse response){
        ReturnVO vo = new ReturnVO();
        vo.setStatus(HttpServletResponse.SC_OK);
        QuestionnaireTask oldQuestionnaireTask=questionnaireTaskService.getQuestionnaireTaskByCode(questionnaireTask.getQuestionnaireTaskCode());
        oldQuestionnaireTask.setQtaskId(questionnaireTask.getQtaskId());
        oldQuestionnaireTask.setQnId(questionnaireTask.getQnId());
        oldQuestionnaireTask.setMemberId(questionnaireTask.getMemberId());
        oldQuestionnaireTask.setCompanyId(questionnaireTask.getCompanyId());
        oldQuestionnaireTask.setCompanyName(questionnaireTask.getCompanyName());
        oldQuestionnaireTask.setBrandCode(questionnaireTask.getBrandCode());
        oldQuestionnaireTask.setBrandName(questionnaireTask.getBrandName());
        oldQuestionnaireTask.setProvinceCode(questionnaireTask.getProvinceCode());
        oldQuestionnaireTask.setProvinceName(questionnaireTask.getProvinceName());
        oldQuestionnaireTask.setCityCode(questionnaireTask.getCityCode());
        oldQuestionnaireTask.setCityName(questionnaireTask.getCityName());
        oldQuestionnaireTask.setSaleArea(questionnaireTask.getSaleArea());
        oldQuestionnaireTask.setAssignTime(questionnaireTask.getAssignTime());
        oldQuestionnaireTask.setUserName(questionnaireTask.getUserName());
        oldQuestionnaireTask.setMobileNum(questionnaireTask.getMobileNum());
        oldQuestionnaireTask.setUserJob(questionnaireTask.getUserJob());
        oldQuestionnaireTask.setUserJobTime(questionnaireTask.getUserJobTime());
        oldQuestionnaireTask.setIfDone(questionnaireTask.getIfDone());
        oldQuestionnaireTask.setDoneTime(questionnaireTask.getDoneTime());
        oldQuestionnaireTask.setDeleteMark(questionnaireTask.getDeleteMark());
        oldQuestionnaireTask.setCreateUser(questionnaireTask.getCreateUser());
        oldQuestionnaireTask.setCreateTime(questionnaireTask.getCreateTime());
        oldQuestionnaireTask.setUpdateUser(questionnaireTask.getUpdateUser());
        oldQuestionnaireTask.setUpdateTime(questionnaireTask.getUpdateTime());
        oldQuestionnaireTask.setUpdateUser(getSessionUser().getUserId());
        oldQuestionnaireTask.setDataSource(BusiConstants.DATASOUCE_CODE_FOR_MDM);
        try {
            questionnaireTaskService.updateQuestionnaireTask(oldQuestionnaireTask);
        }catch (MdmException e){
            vo.setStatus(e.getCode());
            vo.setMessage(e.getMessage());
        }
        super.ajaxJson(response,vo);
    }

    /**
     * 删除调查问卷任务信息
     * @param questionnaireTask 调查问卷任务对象
     * @return
     */
    @RequestMapping(value= "/delete", method = RequestMethod.POST)
    public void deleteQuestionnaireTask(@RequestBody QuestionnaireTask questionnaireTask,HttpServletResponse response){
        ReturnVO vo = new ReturnVO();
        vo.setStatus(HttpServletResponse.SC_OK);
        questionnaireTask.setUpdateUser(getSessionUser().getUserId());
        questionnaireTask.setDataSource(BusiConstants.DATASOUCE_CODE_FOR_MDM);
        try {
            questionnaireTaskService.deleteQuestionnaireTask(questionnaireTask);
        }catch (MdmException e){
            vo.setStatus(e.getCode());
            vo.setMessage(e.getMessage());
        }
        super.ajaxJson(response, vo);
    }

	/**
     * 跳转调查问卷任务明细页面
     * @param questionnaireTaskCode  调查问卷任务代码
     */
    @RequestMapping("/detail")
    public String toDetailPage(String questionnaireTaskCode,Model model){
        QuestionnaireTask questionnaireTask = questionnaireTaskService.getQuestionnaireTaskByCode(questionnaireTaskCode);
        model.addAttribute("questionnaireTask", questionnaireTask);

        model.addAttribute("nation", regionService.getRegionByCode(questionnaireTask.getNationCode()));
        return "mdm/questionnaireTask/detail";
    }

    /**
     * 跳转分页查询界面
     * @return
     */
    @RequestMapping("/list")
    public String toListPage(){
        return "mdm/questionnaireTask/list";
    }

    /**
     * 分页查询数据
     * @param questionnaireTask 调查问卷任务对象
     * @param dtrequest 页码
     */
    @RequestMapping("/getListData")
    @ResponseBody
    public DataTableResponse<QuestionnaireTask> getQuestionnaireTaskData(QuestionnaireTask questionnaireTask ,DataTableRequest dtrequest){
        int cnt = (int)questionnaireTaskService.getQuestionnaireTaskCount(questionnaireTask);
        List<QuestionnaireTask> list = questionnaireTaskService.queryQuestionnaireTasks(questionnaireTask, dtrequest.getiDisplayStart(), dtrequest.getiDisplayStart() + dtrequest.getiDisplayLength());
        PageInfo pi = new PageInfo();

        pi.setTotal(cnt);
        pi.setRows(dtrequest.getiDisplayLength());
        pi.setPage(dtrequest.getCurrentPage());
        PaginationResult<QuestionnaireTask> result = new PaginationResult<QuestionnaireTask>(list, pi);
        return new DataTableResponse<QuestionnaireTask>(dtrequest.getsEcho(),result);
    }

}
